<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>03_函数</title>
</head>
<body>
    <button onclick="alert('警告框')">弹出警告框</button>
    <button onclick="confirm('您确认退出登录吗？')">弹出确认框</button>
    <button onclick="prompt('请输入用户名')">弹出输入框</button>
<script>
    console.log(parseInt(6.6));//6
    console.log(parseInt(6.1));//6
    console.log(parseInt(6));//6
    console.log(parseInt('hhhh'));//NaN
    console.log(parseInt('34hh56hh78'));//34

    console.log(parseFloat(5));//5
    console.log(parseFloat(5.5));//5.5
    console.log(parseFloat('hhhh'));//NaN
    console.log(parseFloat('3.4hh2.8hh'));//3.4
    //判断是否为NaN非数字，数字得到false，非数字得到true
    console.log(isNaN(1));//false
    console.log(isNaN(1.6));//false
    console.log(isNaN('hhhh'));//true

    //1.JS通过function关键字来定义函数
    function f1(){
        console.log('f1函数')
    }
    f1();
    f1();
    f1();

    //2.声明带参数的函数
    function f2(n){
        console.log('f2函数'+n);
    }
    f2(1);
    f2(false);
    f2('hello');

    //3.形参与实参的个数
    function f3(x,y){
        console.log(x + y);
    }
    f3(1,2);//3
    f3(1);//1+undefined = NaN，未被赋值的形参值为undefined
    f3(3,2,1);//5，多余的实参1被舍弃
    f3(1,'3');//13，+ 代表字符串连接
    f3(1,true);//2，true转换为数值1，false为0

    //4.arguments参数，用来保存调用函数时传入的参数，可以看到参数的个数和具体的值
    function f4(){
        console.log(arguments);
    }
    f4(50);
    f4(50,60);
    f4(50,60,70);

    //5.方法的返回值
    function f5(a,b){
        return a+b;
    }
    var res = f5(1,2);
    console.log(res);
    console.log(f5(2,3));

    //第二种函数声明的方式
    var f6 = function (){
        console.log('f6函数');
    }
    f6();
    console.log(f6,typeof f6);//f(){console.log('f6函数');}   function

    //第三种函数声明方式
    //将函数整体交给常量f7来保存，调用时直接通过常量名调用即可
    const f7 = (n)=>{
        console.log('箭头函数' + n);
    }
    f7(666);
    f7('你好');
    console.log(f7);
    console.log(f7(555));//undefined
</script>
</body>
</html>